gkimmulticontext: Fix crash due to leaked signal handler
authorAlexandr Miloslavskiy <alexandr.miloslavskiy@syntevo.com>
Tue, 17 Dec 2019 11:44:33 +0000 (12:44 +0100)
committerAlexandr Miloslavskiy <alexandr.miloslavskiy@syntevo.com>
Fri, 20 Mar 2020 17:02:22 +0000 (18:02 +0100)
commit32f088e33535f9532c49ce42432fa2fa35d7b3d4
tree8453ccfe819c67481f0c14b5990f57ed41f59007
parentcb81e3ee47807bc0721c94c755a8322c136a8933
gkimmulticontext: Fix crash due to leaked signal handler

The problem is caused by gtk_im_multicontext_set_slave(), which forgets
to disconnect these signal handlers:
* gtk_im_multicontext_retrieve_surrounding_cb
* gtk_im_multicontext_delete_surrounding_cb

If slave GtkImContext emits signal after GtkIMMulticontext context is
destroyed, this leads to reading freed memory, sometimes causing a crash.

Fixes: #2365
gtk/gtkimmulticontext.c